home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Workbench Design
/
WB Collection.iso
/
workbench werkzeuge
/
bildschirmschoner
/
blitzblank_2.60
/
developer
/
modulesources
/
bb.mosaic.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-04-07
|
3KB
|
123 lines
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <dos/dos.h>
#include <exec/memory.h>
#include <intuition/intuitionbase.h>
#include <intuition/screens.h>
#include <intuition/intuition.h>
#include <proto/exec.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <pragmas/blitzblank_pragmas.h>
#include <BlitzBlank.h>
struct Library *BlitzBlankBase;
static const char version[]="$VER: BB.Mosaic 2.60 (21.04.95)";
char *text[]={"\33c\33uMosaic\33n\n\nModule for BlitzBlank\n\nCopyright 1995\nby\nThomas Börkel",
"Sp_eed:",
"Si_ze:",
"_Refresh Cycle:",
"_Brightness:",
"_Delay:" };
struct BB_Object object[]={ {&object[1],BB_VGroup,0,0,0,NULL,NULL},
{&object[2],BB_Slider,1,100,100,NULL,NULL},
{&object[3],BB_Slider,3,100,8,NULL,NULL},
{&object[4],BB_Slider,10,500,50,NULL,NULL},
{&object[5],BB_Slider,0,100,70,NULL,NULL},
{&object[6],BB_Slider,0,20,1,NULL,NULL},
{NULL,BB_VGroup_End,0,0,0,NULL,NULL} };
struct BB_Message message;
struct BB_Screeninfo *screeninfo;
void blank (void)
{
int i,x,y,c,sizex,sizey,sizex2,sizey2;
long a=0;
struct RastPort *rp;
rp=&screeninfo->bbscreen->RastPort;
sizex=object[2].set;
sizey=sizex*screeninfo->xpixelsize/screeninfo->ypixelsize;;
sizex2=sizex/2;
sizey2=sizey/2;
ScreenToFront (screeninfo->bbscreen);
if (!CheckSignal (SIGBREAKF_CTRL_C))
{
BBL_ModuleRunning ();
if (BBL_FadeDown (screeninfo->bbscreen,object[4].set,object[5].set))
{
do
{
WaitTOF ();
for (i=1;i<=object[1].set;i++)
{
x=drand48 ()*(screeninfo->width-sizex)+sizex2;
y=drand48 ()*(screeninfo->height-sizey)+sizey2;
c=ReadPixel (rp,x,y);
SetAPen (rp,c);
RectFill (rp,x-sizex2,y-sizey2,x+sizex2,y+sizey2);
a++;
if (a>10000*object[3].set)
{
a=0;
BBL_CopyOriginalScreen (screeninfo->bbscreen);
}
}
} while (!CheckSignal (SIGBREAKF_CTRL_C));
}
}
return;
}
void main (int argc,char **argv)
{
int i;
if (!(BlitzBlankBase=OpenLibrary ("blitzblank.library",BLITZBLANKLIB_VER)))
exit (0);
message.flags=BBF_CloneScreen;
message.first=&object[0];
if (strcmp (argv[1],"BLANK")==0)
{
StrToLong (argv[3],(long *) &screeninfo);
BBL_SendMessage (&message,argv[2]);
if (screeninfo->bbscreen)
blank ();
BBL_BlankDone ();
}
else
{
message.infotext=BBL_GetString (240,text[0]);
for (i=1;i<=5;i++)
object[i].label=BBL_GetString (240+i,text[i]);
if (strcmp (argv[1],"CONFIG")==0)
{
BBL_SendMessage (&message,argv[2]);
}
else
{
message.first=NULL;
BBL_SendMessage (&message,argv[2]);
}
}
CloseLibrary (BlitzBlankBase);
exit (0);
}